"""
Flask应用配置模块
支持开发、测试、生产环境的不同配置
"""
import os
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

class Config:
    """基础配置类"""
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'dev-secret-key'
    
    # Neo4j数据库配置
    MONGODB_URI = os.environ.get('MONGODB_URI') or 'mongodb://localhost:27017/sem-mongo'
    # MONGODB_USER = os.environ.get('MONGODB_USER') or 'neo4j'
    # MONGODB_PASSWORD = os.environ.get('MONGODB_PASSWORD') or 'password'
    
    # CORS配置
    CORS_ORIGINS = os.environ.get('CORS_ORIGINS', 'http://localhost:3000,http://localhost:5173').split(',')
    
    # 日志配置
    # LOG_LEVEL = os.environ.get('LOG_LEVEL') or 'INFO'
    # LOG_FILE = os.environ.get('LOG_FILE') or 'app.log'

class DevelopmentConfig(Config):
    """开发环境配置"""
    DEBUG = True
    FLASK_ENV = 'development'

class TestingConfig(Config):
    """测试环境配置"""
    TESTING = True
    DEBUG = True
    # NEO4J_URI = os.environ.get('TEST_NEO4J_URI') or 'bolt://localhost:7688'

class ProductionConfig(Config):
    """生产环境配置"""
    DEBUG = False
    FLASK_ENV = 'production'

# 配置字典
config = {
    'development': DevelopmentConfig,
    'testing': TestingConfig,
    'production': ProductionConfig,
    'default': DevelopmentConfig
}